class: center, middle, inverse, title-slide .title[ # Informes con Rmarkdown ] .subtitle[ ## Dirección Nacional de Estadística Criminal - Ministerio de Seguridad ] --- <style type="text/css"> .remark-slide-content { font-size: 25px; padding: 1em 1em 1em 1em; } <style type="text/css"> .remark-code{ line-height: 1.5; font-size: 80% } @media print { .has-continuation { display: block; } } </style> # Hoja de ruta ## ✔️ ¿Qué es Rmarkdown (_spoiler: R + Markdown_)? ## ✔️ Conceptos básicos de Markdown ## ✔️ YAML, Chunks y texto <br> Algunas referencias que inspiran este material: - https://swcarpentry.github.io/r-novice-gapminder-es/15-knitr-markdown/index.html - https://shilaan-apa.netlify.app/ --- # Flujo de Trabajo de las CSCyHD <img src="data:image/png;base64,#img/circuito_del_dato_tidy.png" width="75%" style="display: block; margin: auto;" /> --- class: inverse, center, middle # Rmarkdown <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- # R + Markdown ## Rmarkdown es un formato de Rstudio que permite combinar la **sintaxis de Markdown** para escritura de texto plano con la **sintáxis de R** para el procesamiento de datos. <img src="data:image/png;base64,#img/rmarkdown_proceso.png" width="65%" style="display: block; margin: auto;" /> --- # Hasta ahora... <img src="data:image/png;base64,#img/informe_0.jpg" width="35%" style="display: block; margin: auto;" /> --- # Hasta ahora... <img src="data:image/png;base64,#img/informe_1.jpg" width="35%" style="display: block; margin: auto;" /> --- # Hasta ahora... <img src="data:image/png;base64,#img/informe_2.jpg" width="35%" style="display: block; margin: auto;" /> --- # Hasta ahora... <img src="data:image/png;base64,#img/informe_3.jpg" width="45%" style="display: block; margin: auto;" /> --- # Hasta ahora... <img src="data:image/png;base64,#img/informe_4.jpg" width="45%" style="display: block; margin: auto;" /> --- # Hasta ahora... .pull-left[ <img src="data:image/png;base64,#img/informe_5.jpg" width="100%" style="display: block; margin: auto;" /> ] -- .pull-right[ <img src="data:image/png;base64,#img/you-shall-not-pass-gandalf.gif" width="100%" style="display: block; margin: auto;" /> ] --- # Desventajas del "hasta ahora..." <br> - ## Decenas, cientos, miles de versiones. `informe_FINAL_FINAL_FINAL_V2_1.doc` - ## I-rreproducible - ## ¿Mismo informe con nuevos datos?: "no de nuevo"[1](https://www.youtube.com/watch?v=SOBNO4gl_yM) --- class: middle, center, inverse <img src="data:image/png;base64,#img/logo_rmarkdown.png" width="30%" style="display: block; margin: auto;" /> --- # Rmarkdown .pull-left[ ## Antes: <img src="data:image/png;base64,#img/r_word_markdown.png" width="110%" style="display: block; margin: auto;" /> ] .pull-right[ ## Después: <img src="data:image/png;base64,#img/rmardown_previz.png" width="110%" style="display: block; margin: auto;" /> ] --- # Rmarkdown - Formatos de salida <img src="data:image/png;base64,#img/rmarkdown_salidas.png" width="50%" style="display: block; margin: auto;" /> --- # Rmarkdown - Nuevo archivo <img src="data:image/png;base64,#img/rmarkdown_nuevo_archivo.png" width="85%" style="display: block; margin: auto;" /> --- # Rmarkdown - Componentes <img src="data:image/png;base64,#img/rmarkdown_tripartito.png" width="80%" style="display: block; margin: auto;" /> --- class: inverse, middle, center # _ENCABEZADO (YAML)_ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- # Rmarkdown - YAML (metadata o encabezado) <br><br> <img src="data:image/png;base64,#img/rmarkdown_encabezado.png" width="100%" style="display: block; margin: auto;" /> --- class: inverse, middle, center # _CODIGO_ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- # Rmarkdown - chunk (o bloque de código) - Estructura <img src="data:image/png;base64,#img/rmd_bloque_de_codigo.png" width="100%" style="display: block; margin: auto;" /> --- # Rmarkdown - chunk (o bloque de código) - Estructura <img src="data:image/png;base64,#img/chunk_radiografia_1.png" width="90%" style="display: block; margin: auto;" /> -- <img src="data:image/png;base64,#img/chunk_radiografia_2.png" width="90%" style="display: block; margin: auto;" /> -- <img src="data:image/png;base64,#img/chunk_radiografia_3.png" width="90%" style="display: block; margin: auto;" /> --- # Rmarkdown - chunk (o bloque de código) - Estructura <img src="data:image/png;base64,#img/rmd_bloque_de_codigo_v2.png" width="100%" style="display: block; margin: auto;" /> --- # Rmarkdown - chunk (o bloque de código)-Configuración | __Función__ | __Acción__ | | :--- | :--- | | `{r echo = FALSE}` | *Muestra sólo resultado del chunk*| | `{r echo = TRUE}` | *Muestra código y resultado del chunk*| | `{r eval = FALSE}` | *Muestra código pero no ejecuta*| | `{r include = FALSE}` | *No muestra nada (ni código ni resultado) pero ejecuta código*| | `{r eval = FALSE, include = FALSE}` | *No muestra nada (ni código ni resultado) tampoco ejecuta*| --- # Rmarkdown - chunk (o bloque de código) - Ejecución <img src="data:image/png;base64,#img/chunk_corro_uno.png" width="75%" style="display: block; margin: auto;" /> -- <img src="data:image/png;base64,#img/chunk_corro_hasta_aca.png" width="75%" style="display: block; margin: auto;" /> --- # Rmarkdown - chunk (o bloque de código) - Índice <img src="data:image/png;base64,#img/chunk_etiquetas.png" width="75%" style="display: block; margin: auto;" /> --- class: inverse, middle, center # _TEXTO_ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- # Rmarkdown - Texto <img src="data:image/png;base64,#img/rmarkdown_codigo_salida.png" width="100%" style="display: block; margin: auto;" /> --- # Rmarkdown - Código en texto <img src="data:image/png;base64,#img/codigo_en_texto.png" width="100%" style="display: block; margin: auto;" /> --- class: inverse, middle, center # _PRÁCTICA_ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- class: inverse, middle # Práctica 1) Crear un informe que contenga: - **En TEXTO:** - Una estructura mínima de texto (Título, consigna, descripción de las tareas realizadas y muy breve conclusión) - **En CÓDIGO:** - Carga de librerías (no mostrar el código en el reporte) - Importación de datos (mostrar el código en el reporte) - Algún procesamiento mínimo como filtrar, seleccionar, generar un tabulado, etc. (mostrar el código y el resultado en el reporte) - _Extra_: Incluir un gráfico --- # RECURSOS - [Guía de comandos para texto en Rmarkdown](https://www.rstudio.com/wp-content/uploads/2015/03/rmarkdown-reference.pdf?_ga=2.157796986.1542626288.1625161001-1806201684.1624641897) - [Guía definitiva de Rmarkdown (en inglés)](https://bookdown.org/yihui/rmarkdown/) - [Machete Rmarkdown](https://raw.githubusercontent.com/rstudio/cheatsheets/main/rmarkdown.pdf) - [Cocina de Rmarkdown (en inglés)](https://bookdown.org/yihui/rmarkdown-cookbook/)